<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 回顾

        // 判断一个键是否在对象中 

        var obj = {
            name:'张三',
            age:18
        }

        // alert('name' in obj);
        // alert('age' in obj);
        // alert('height' in obj);


        // 其它类型转布尔类型  
        // 0 '' NaN null undefined  false 

        // 隐式转换  123 => true
        // 强制转换  Boolean(123) => true;

        // if('name' in obj){
        //     alert('在');
        // }
        // else{
        //     alert('不在');
        // }

       
        var arrs = [1,2,3,3,4,4,3,5,6,7,4,5]

        // 准备一个空对象 用来存放结果
        // 数组的元素作为键  出现的次数作为值 
        // {1:1,2:1,3:3,4:3,5:2,6:1,7:1}
        
        // 遍历原数组 
        // 如果这个元素不在对象中  它的次数 1
        // 如果这个元素在对象中  它的次数 +1
        // 


        var obj = {};
        for(var i=0;i<arrs.length;i++){
            if(!(arrs[i] in obj)){  // 数组的元素作为键
                // 判断这个键是否在对象中出现 
                // 如果没有出现 次数 1
                obj[arrs[i]] = 1
            }
            else{
                // 如果出现 次数 +1
                obj[arrs[i]] += 1
            }
        }

        console.log(obj);
        
    </script>
</body>
</html>